function contentPrepare($)
{
  if (!$("#user-info").length)
    return;

  $("#user-auth,#vk-login").hide();

// установить пользовательское фото
  var setPhoto = function(e, filename, type)
  {
    type = type || "photo";
    $("#photo img").attr("src", type == "photo" ? [$.baseUrl, "/content/thumb/photos/", filename].join("") : filename);
    $("#User_photo").val(filename);
    $("#User_photo_type").val(type);
  };

// инициализация полей формы
  var initFields = function(filename)
  {
    $("#vk-account").fs().VKAuth(function(e, user)
    {
      VK.Api.call("getProfiles", {uids: user.id, fields: "photo_big"}, function(data)
      {
        if (data.response.length)
          $.post($.baseUrl + "/content/photocopy", {url: data.response[0].photo_big}, function(filename)
          {
            $("#photo img").uploader("setSrc", filename);
            setPhoto(e, filename);
          });
      });
      $("#User_name").val($.trim([user.first_name || "", user.last_name || ""].join(" ")));
      $("#User_login").val(user.nickname || user.domain || "");
      $("#User_vkontakte").val(user.href || "");
      $(":text,:password").filter("[value='']:first").focus();
    });
    $("#photo img").uploader({
      src   : filename || "",
      title : "Загрузить фотографию",
      url   : $.baseUrl + "/content/imgupload/photos",
      remove: $.baseUrl + "/content/imgremove/photos"
    }).bind("upload", setPhoto);
    $("#avatar").avatars({contentElement: "#user-info"}).bind("avaselect", function(e, filename)
    {
      $("#photo img").uploader("setSrc", "");
      setPhoto(e, filename, "avatar");
    });
    $(":text,:password").fs().inputvis();
    $("#submit").button();
  };

  $.validator.addMethod("login", function(value, element)
  {
    return this.optional(element) || /^[\w\-]+$/.test(value);
  }, "Логин должен содержать только буквы латинского алфавита, цифры, знаки \"_\" и \"-\"");
  $.validator.addMethod("email", function(value, element)
  {
    return this.optional(element) || /^[a-zA-Z0-9!#$%&\'*+\\/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&\'*+\\/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$/.test(value);
  }, "Укажите корректный e-mail");

  $("#user-info").validate({
    messages: {
      "User[name]"   : {required: "Укажите свое имя"},
      "User[login]"  : {required: "Укажите свой логин", remote: "Логин уже занят"},
      "User[paswd]"  : {required: "Укажите свой пароль"},
      "User[confirm]": {equalTo : "Пароли не совпадают"},
      "User[email]"  : {required: "Укажите свой e-mail"}
    },
    rules   : {
      "User[name]"   : "required",
      "User[login]"  : {required: true, login: true, remote: $.baseUrl + "/user/checklogin"},
      "User[paswd]"  : "required",
      "User[confirm]": {equalTo : "#User_paswd"},
      "User[email]"  : {required: true, email: true}
    },
    submitHandler: function(form)
    {
      var $form = $(form).ajaxSubmit(function(html)
      {
        var $photo = $("#photo img");
        var src    = $photo.uploader("option", "src");
        $photo.uploader("clear");
        var $info = $(html).filter("#user-info");
        if ($info.length)
        {
          $form.html($info.html());
          initFields(src);
          $form.find(".errorMessage:first").prev().focus().select();
        }
        else
          $form.replaceWith(html);
      });
    }
  });

  initFields();
  $(":text,:password").filter("[value='']:first").focus();
}
